[レポート]AWS Glue Data Qualityでデータ品質をモニタリング&管理しよう #reinvent #ANT222
データアナリティクス事業本部の鈴木です。
AWS re:Invent 2022の、セッション番号ANT222の『[NEW] Monitor & manage data quality in your data lake with AWS Glue』を聴講したのでレポートです。
このセッションは、AWS re:Invent 2022で発表されたAWS Glue Data Qualityに関するセッションです。AWS Glue Data Qualityは記事執筆時点ではプレビューとなっています。
セッションについて
登壇者
- Shivaprasad Narayanan, Product Manager, Amazon
- Sudeep Joseph, Chief architect - data and analytics, Travelers Insurance
- Brian Ross, Senior Software Development Manager, Amazon
Session level
200 - Intermediate
Session type
Breakout Session
動画
セッション概要
AWS Glue Data Qualityは、高いデータ品質を確保することで、データに対する信頼性を担保します。データレイクやデータパイプラインのデータ品質を自動的に測定・監視・管理するため、データの欠損・陳腐化・異常の特定が簡単になります。このセッションでは、この新機能によってデータ品質に関する作業を数日から数時間に短縮する方法について詳しく説明します。AWS Glue Data Qualityがどのようにデータ品質ルールを提案するか、データを継続的に監視するか、データ品質が低下したときに警告を出すかといった、この機能の特徴について学びます。
発表概要
大きく分けて、データ品質管理がどのように重要なのかの説明、デモンストレーション、Travelersのユーザーからのコメントの3つの発表内容がありました。各々の概要をご紹介できればと思います。
データ品質管理がどのように重要なのか
モダンなデータアーキテクチャはいくつかありますが、やってみると分かる通りとても難しいです。AWS Glueはサーバーレスでスケーラブルなクラウドネイティブのデータ統合サービスで、モダンなデータプラットフォームを構築するのに適しています。
Glueは100以上のネイティブ・コネクタとマーケットプレイス・コネクタを提供し、さまざまなところにあるデータソースに接続し、データを取得することが可能です。クローラーを使うとメタデータを発見し、そこからスキーマを推論することも可能です。データのプロファイリング・統計情報の取得などと併せて、Glueデータカタログに格納することもできます。
AWS Glue Studioは、パイプラインを視覚的に構築し、あらかじめ用意された変換をドラッグ&ドロップすることで、迅速に変換を定義し、それをスケールアップして実行することができます。また、サーバーレスなノートブックを使ってPythonやSparkを実行することができます。Glue Data Brewは、スプレッドシートのようなUIで、データの操作・変換を行え、レシピとして行ったことを記録し、それをより大きなデータに対してもスケールして適用できます。GlueのエンジンはPythonやApache Spark、新しくRayなどを基礎としています。
このようにGlueを使えばさまざまな規模や種別のデータに対しても処理を実行することができますが、大きな問題があります。いかにコストをかけてこのようなプラットフォームを構築したとしても、分析の価値は処理されるデータの品質によって決まってしまうのです。
Gartnerが昨年行った試算によると、悪いデータに基づく誤った意思決定により、企業は平均して年間約1200万ドルの損失を被っています。また、事例としては、電子カルテに入力されたデータの欠損や誤りが、以下のように重要な意味を持つこともありました。
現状、データ品質ツールの導入には大きく3つの選択肢があります。特に2つ目についてはAWSだとDeequというOSSがあります。どの選択肢を取るにしても、普通はAWS上に十分なリソースを計算した上でプロビジョニングする必要がありますし、大規模なデータを扱う場合にはApache SparkやPythonのような技術要素を知っている必要があります。
また、たいていこれらのツールはデータストアに焦点を当てていて、データパイプライン中に組み込むような作り方はされていないものです。これは品質の低いデータがデータレイクやデータウェアハウスに入り込むことを許容していることになるので、できればそれ自体を防ぐプロアクティブな方法を取りたいです。このように、実際のところ、データ品質管理の構築と運用はとても難しいです。
そこで、AWS Glue Data Qualityです。
サーバーレスでスケーラビリティについて心配する必要がありませんし、専用リソースだけでなくより安価なリソースで実行することも可能です。AWS Glue Data QualityはDeequを使っています。Glue Data Qualityを使うときは、最初にデータの現状に基づいて、推奨されるルールが生成し、必要があれば微調整をすることができます。ルールは宣言的に表現するためのDQDL(Data Quality Definition Language)で記載します。バッチ処理だけでなく、リアルタイムのストリーミングデータパイプラインもサポートしています。複数のペルソナが使うことも想定しており、データカタログ上で品質を確認することもできれば、パイプラインに組み込む目的でGlue Studioから利用したり、コードで柔軟に記述したりすることも可能です。
デモンストレーション
デモではリアクティブなデータ品質チェックとプロアクティブなデータ品質チェックの例を紹介頂きました。
リアクティブなデータ品質チェックは、データカタログを使って既に入っているデータの品質をチェックするような場合です。
プロアクティブなデータ品質チェックとしては、例えばGlue Studioからパイプラインにチェックのステップを入れることができます。これにより、システムに品質の低いデータが入ること自体を防ぎます。
エンジンであるDeequは、OSSで既に多くの人に利用されているため、以下の3つの重要な要件を満たしています。
- 大きなデータに対してもスケールできること
- ほかの場所で有効性が実証されていること
- オープンであること
ルールの記述はシンプルでわかりやすいことなどの観点を満たした言語を開発しました。ビジネスユーザーにも理解しやすく、視覚的に分かりやすいです。もしDQDLが気に入らなければSQLを書くこともできます。
使い方は、まずGlueのテーブルから確認したいテーブルを開き、Data quality
タブを開きます。そしてRecommend rules
をクリックして推奨されるルールセットを生成します。
ルールセット名と利用するIAMを指定し、実行します。(ワーカー数などはAdditional configurations
を開くとできるようになっています。)
処理が終了するのを待ちます。
例えばこのようにルールセットが作成されます。
Actions
のEdit
から修正することが可能です。
修正したルールセットで再実行できます。
失敗した場合は、失敗したルールがどれか表示されます。内容を確認することももちろん可能です。
失敗したメトリクスはCloudWatchに送信することができます。ここからアラームを作成し、SNSなどを経由して通知することが可能です。自動実行については、例えばStep Functionsを使ってデータ品質APIを呼び出す例が言及されていました。
データ品質のチェック結果はS3にも出力されるので、例えばQuickSightを使って可視化することも可能です。
プロアクティブな例としては、Glue Studioでパイプラインを構築する例が紹介されていました。Evaluate Data Quality
の部品を使うとデータ品質をチェックするステップがパイプラインに組み込めるようです。
データ品質のチェックルールは4つの次元に渡ってサポートされています。
また、セッション公開時点での料金はこのようになっています。
ユーザーからのコメント
過去3・4年の間にビジネスでは、ワークフローにおける予測モデルや自動化された決定プロセスが大幅に増えました。Travelersでも、数多くの予測モデリング機能を使用しています。単純なモデルから、非常に複雑な機械学習や深層学習モデル、地理空間や画像を対象にしたものなど、さまざまな機能を使っています。多くの決定をデータから自動化する際に、実際に解決しようとしている問題の大きさと取り込んでいるデータの大きさから、さまざまな環境を管理する時間が十分でないことが課題になります。
特に、画像や航空写真など、さまざまなソースからのペタバイト級のデータ量を消費する場合、スケーラビリティは大きなポイントになります。また、データ品質担当者は、主にビジネスを熟知していたり、あるフィールドの特定の値の範囲を正確に把握していたりするビジネス担当者で、必ずしもエンジニアとは限りません。そのため、DQDLのようなビジネスユーザーから見て便利で分かりやすい方法で、なおかつエンジニアリングプロセスに組み込むことができるフレームワークがあることもポイントになります。
AWS Glue Data Qualityは、私たちのようなユーザーが求めている多くの機能をカバーしており、GAを楽しみにしています。
最後に
今回は、AWS re:Invent 2022の『[NEW] Monitor & manage data quality in your data lake with AWS Glue』のレポートでした。
データ品質のチェックは、例えばデータに異常があったような際にトラブルシュートに非常に重要ですが、Glue Data Qualityでは何か起きたときだけではなく、パイプラインに組み込んでしまうことが可能で、Glueの強みを以下した機能になっています。また、S3やCloudWatchを経由して、AWSの機能で通知やレポーティングができるのもとても良いです。
AWSのネイティブな機能でデータ品質が確認できるようになったこと自体もとても嬉しいですし、さまざまな機能と親和性が高く一緒に活用できるのも魅力です。今後とても重要な機能になってくると思います。
また、プレビュー版ですが、この機能は既にGlueのコンソールから利用可能になっているので興味がある方はぜひ触ってみて頂ければと思います。
Deequについては過去に取り上げた記事もあるので、興味があればご確認ください。